home *** CD-ROM | disk | FTP | other *** search
/ IRIX Patches 1995 December / SGI IRIX Patches 1995 Dec.iso / relnotes / patchSG0000556 / ch3.z / ch3
Text File  |  1995-11-17  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        1.  _B_u_g_s__F_i_x_e_d__i_n__P_a_t_c_h__S_G_0_0_0_0_5_5_6
  9.  
  10.        Patch 556 fixes the following bugs on top of those
  11.        previously fixed in patches SG0000364 (see Chapter 4) and
  12.        SG0000170 (see Chapter 5):
  13.  
  14.        _S_y_n_t_a_x _A_n_a_l_y_s_i_s
  15.  
  16.           +o Fixed a problem with premature or unnecessary
  17.             instantiation of member functions of template classes,
  18.             which would cause spurious syntax errors about
  19.             incomplete classes or invalid operators for template
  20.             parameters.  (281526, 275650)
  21.  
  22.           +o We now allow explicit destructor calls on template type
  23.             parameters using the ~~~~TTTT(((()))) syntax (for a "template
  24.             <class T> class Foo {...}"). (233851)
  25.  
  26.           +o Fixed a problem matching template types in the presence
  27.             of typedefs and const-qualified types. (279898)
  28.  
  29.           +o The compiler now passes on friendship to classes nested
  30.             within the friend class. (278785)
  31.  
  32.           +o CC now correctly performs type-checking of the two
  33.             dependent expressions when the type of one of them is a
  34.             const-qualified version of the other. (278769)
  35.  
  36.           +o CC will now call an operator T& for a template<class T>
  37.             class if an instance of that class is cast to a T&
  38.             (284867).
  39.  
  40.           +o CC used to crash when it encountered an array of
  41.             classes whose constructor takes a class type as an
  42.             argument with a default value. This is now fixed.
  43.             (279896, 281237)
  44.  
  45.           +o CC no longer gives a spurious error when it encounters
  46.             a #pragma instantiate during "CC -M". (271665)
  47.  
  48.           +o DCC no longer crashes if it encounters a struct with a
  49.             nested typedef that points back to the struct. (280910)
  50.  
  51.        _C_o_d_e _G_e_n_e_r_a_t_i_o_n
  52.  
  53.           +o Casts between pointer-to-member-function types caused
  54.             bad code to be generated, causing the compiler backend
  55.             (ugen or uopt) to crash. (281857).
  56.  
  57.           +o Expressions of the form "long *= long long" were being
  58.             incorrectly computed. We now generate correct code for
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.             them. (276616)
  75.  
  76.           +o We now correctly generate tttthhhhiiiissss pointers when calling an
  77.             inherited ooooppppeeeerrrraaaattttoooorrrr(((()))) from a non-leftmost base class.
  78.             (280806, 252593).
  79.  
  80.           +o Volatile arrays (declared arrays of volatile types) are
  81.             now handled correctly (i.e. we do not optimize accesses
  82.             to them). (278794)
  83.  
  84.        _O_t_h_e_r
  85.  
  86.           +o The prelinker can now look for available template
  87.             instantiations in libraries specified using the "-l"
  88.             flag on the link (or edg_prelink) line. (274682)
  89.  
  90.           +o We now correctly handle CC's ----oooobbbbjjjjeeeeccccttttlllliiiisssstttt option in the
  91.             template prelinker (i.e. objects in the -objectlist
  92.             file that need to have templates instantiated are
  93.             handled correctly). (253983)
  94.  
  95.           +o The template instantiation mechanism now correctly
  96.             handles the case where template instantiations in DSOs
  97.             may have the HIDDEN attribute (and thus shouldn't be
  98.             counted as available instantiations). (271006)
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.